package com.ynet.middleground.approve.dto;

import java.io.Serializable;
import java.util.Map;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author liulx
 * @description 流程定义传输对象
 * @date 2019-10-11 16:14
 */
@Data
@ApiModel(value = "流程定义信息类", description = "流程定义信息传输类")
public class ProcessDefinitionDTO implements Serializable {

    private static final long serialVersionUID = 6168294220917973232L;

    @ApiModelProperty(value = "流程定义ID", notes = "流程定义ID，流程定义的key+版本+随机生成数", dataType = "String")
    private String id;

    @ApiModelProperty(value = "流程定义名称", notes = "流程定义名称", dataType = "String")
    private String name;

    @ApiModelProperty(value = "流程描述", notes = "流程描述", dataType = "String")
    private String description;

    @ApiModelProperty(value = "流程定义key", notes = "流程定义的key，对应bpmn文件中的id属性值", dataType = "String")
    private String key;

    @ApiModelProperty(value = "流程定义的版本，当流程定义的key值相同的情况下，版本升级，默认从1开始", notes = "流程定义的版本，当流程定义的key值相同的情况下，版本升级，默认从1开始",
        dataType = "int")
    private int version;

    @ApiModelProperty(value = "流程类别", notes = "流程类别", dataType = "String")
    private String category;

    @ApiModelProperty(value = "部署对象ID", notes = "部署对象ID", dataType = "String")
    private String deploymentId;

    @ApiModelProperty(value = "流程资源名称", notes = "流程bpmn文件资源名称", dataType = "String")
    private String resourceName;

    @ApiModelProperty(value = "租户", notes = "租户", dataType = "String")
    private String tenantId;

    @ApiModelProperty(value = "流程资源图片", notes = "流程bpmn文件资源png", dataType = "String")
    private String diagramResourceName;

    @ApiModelProperty(value = "流程定义是否包含图形信息", notes = "流程定义是否包含图形信息", dataType = "boolean")
    private boolean graphicalNotationDefined;

    @ApiModelProperty(value = "流程参数", notes = "流程参数", dataType = "java.util.Map")
    private Map<String, Object> variables;

    @ApiModelProperty(value = "是否有开始表单", notes = "是否有开始表单", dataType = "boolean")
    private boolean hasStartFormKey;

    @ApiModelProperty(value = "流程定义状态", notes = "流程定义的状态", dataType = "int")
    private int suspensionState;

    @ApiModelProperty(value = "是否已初始化身份", notes = "是否已初始化身份链接", dataType = "boolean")
    private boolean identityLinksInitialized;

    @ApiModelProperty(value = "引擎版本", notes = "引擎版本", dataType = "String")
    private String engineVersion;

}
